package ch03
{
	import flash.display.Sprite;
	import flash.events.Event;
	import utils.Ball;

	/**
	 * 椭圆运动 
	 * 如果让x和y运动的大小相同，那么就得到一个圆。
	 * 如果想得到一个椭圆形，我们只需要在计算x和y位置时使用不同的半径值： radiusX 和 radiusY 。
	 * @author jianping.shenjp
	 * 
	 */
	public class Oval extends Sprite
	{
		private var ball:Ball;
		private var angle:Number=0;
		private var centerX:Number=200;
		private var centerY:Number=200;
		private var radiusX:Number=200;
		private var radiusY:Number=100;
		private var speed:Number=.1;

		public function Oval()
		{
			init();
		}

		private function init():void
		{
			ball=new Ball();
			addChild(ball);
			ball.x=0;
			addEventListener(Event.ENTER_FRAME, onEnterFrame);
		}

		public function onEnterFrame(event:Event):void
		{
			ball.x=centerX + Math.cos(angle) * radiusX;
			ball.y=centerY + Math.sin(angle) * radiusY;
			angle+=speed;
		}
	}
}